package logic

import (
	"context"
	model "demo/cache"
	"demo/internal/svc"
	"fmt"
	"time"

	"github.com/zeromicro/go-zero/core/logx"
)

type TestLogic struct{
	logx.Logger
	ctx context.Context
	svcCtx *svc.ServiceContext
	usermodel model.UserModel
	answermodel model.AnswerModel
}

func NewTestLogic(ctx context.Context,svcCtx *svc.ServiceContext)*TestLogic{
	return &TestLogic{
		Logger: logx.WithContext(ctx),
		ctx: ctx,
		svcCtx: svcCtx,
		usermodel: model.NewUserModel("mongodb://root:password@localhost:27017","admin","user",svcCtx.Config.Cache),
		answermodel: model.NewAnswerModel("mongodb://root:password@localhost:27017","admin","user",svcCtx.Config.Cache),
	}
}

func (l *TestLogic)Test()(err error){
	// l.usermodel.Insert(l.ctx,&model.User{
	// 	ID: [12]byte{244,2,3},
	// 	CreateAt: time.Now(),
	// 	UpdateAt: time.Now(),
	// })
	// byteStr := [12]byte{244,2,3}
	// var str string
	// for _,byte := range byteStr {
	// 	str += fmt.Sprintf("%02x",byte)
	// }
	// user,err := l.usermodel.FindOne(l.ctx,str)
	// fmt.Println("user is :",user)
	// answer := &model.Answer{
	// 	Id: 10,
	// 	CustomerId: 30,
	// 	ServeyId: 100,
	// 	IsFinished: 0,
	// 	Duration: 100,
	// 	AnswerDetails: []*model.AnswerDetailItem{
	// 		{
	// 			AnswerId: 1,
	// 			QuestionId: 2,
	// 			AnsContent:"你好世界",
	// 		},
	// 		{
	// 			AnswerId: 2,
	// 			QuestionId: 3,
	// 			AnsContent:"A",
	// 		},
	// 		{
	// 			AnswerId: 3,
	// 			QuestionId: 4,
	// 			AnsContent:"B",
	// 		},
	// 	},
	// }
	// l.answermodel.Insert(l.ctx,answer)
	go TestGo()

	for i := 0 ; i < 100 ; i++ {
		fmt.Println("主线程执行结果：%d",i)
	}
	defer fmt.Println("退出主线程")
	return nil
}
func TestGo() {
	fmt.Println("进入子线程")
	for i :=0 ; i < 100 ; i++ {
		fmt.Println("携程执行结果:%d",i)
		time.Sleep(time.Second)
	}
	defer fmt.Println("退出子线程")
}